module.exports = {
  extends: ['@commitlint/config-conventional'],
  plugins: ['commitlint-plugin-function-rules'],
  rules: {
    'type-empty': [0],
    'subject-empty': [0],
    'header-max-length': [0],
    'function-rules/header-max-length': [
      2,
      'always',
      parsed => {
        const commitMsg = parsed.raw.trim()
        if (!commitMsg) {
          return [false, '请输入提交信息,不能为空']
        }
        if (/^(build|ci|docs|feat|fix|perf|refactor|style|test)\(.*\): .*/.test(commitMsg)) {
          return [true]
        }
        return [
          false,
          `请按照规范提交<type>(scoped): xxxx，如：feat(xx.vue): 新增xxx功能
        帮助:
          build: 影响构建系统或外部依赖项的更改
          ci： 对我们的CI配置文件和脚本的更改
          docs: 仅文档更改
          feat: 一项新功能
          fix: 一个错误修复
          perf: 改进性能的代码更改
          refactor: 既不修正错误也不增加功能的代码更改
          style: 不影响代码含义的更改
          test： 添加缺失的测试或更正现有的测试
          `
        ]
      }
    ]
  }
}
